2.5 Die Liste
 
Der aus der Liste ausgewählte Eintrag wird ausgegeben. Dieser Code steckt hinter dem Ok-Button:
MessageBox.Show("Es wurde gewählt Nr.: " & _
lstListe.SelectedIndex
Damit wird die Nummer angezeigt. Da aber der gewählte Text angezeigt werden soll, muss die Nummer verwendet werden, um darüber den Text zu ermitteln:
MessageBox.Show("Jetzt gibt es: " & _
lstListe.Items(lstListe.SelectedIndex))
Abbildung 2.4
Ein Eintrag wurde gewählt.
Die Eigenschaft SelectedIndex liefert also die Nummer des ausgewählten Eintrags (Achtung: Die Zählung beginnt mit 0!), Items ist die Sammlung aller Einträge, von denen einer gewählt wird. Natürlich kann man SelectedIndex an eine Variable übergeben - dies empfiehlt sich vor allem dann, wenn an mehreren Stellen der markierte Eintrag verarbeitet wird. Hat nun der Benutzer vergessen einen Eintrag auszuwählen, dann erhält SelectedIndex den Wert -1 und Items(-1) liefert einen Fehler. Dieser sollte natürlich abgefangen werden:
If lstListe.SelectedIndex = -1 Then
MessageBox.Show("Bitte etwas auswählen!")
Else
MessageBox.Show("Jetzt gibt es: " & _
lstListe.Items(lstListe.SelectedIndex))
End If
Abbildung 2.5
Der Benutzer hat vergessen, etwas auszuwählen.
Natürlich könnte man per Programmierung beim Initialisieren des Dialogs einen Eintrag auswählen - der Benutzer hätte dann keine Möglichkeit mehr, nichts mehr auszuwählen. Der Befehl könnte so aussehen:
lstListe.SelectedIndex = 0
Mit Hilfe von zwei weiteren Schaltflächen soll der Benutzer einen (markierten) Eintrag löschen können oder alle löschen dürfen. Der Code sieht folgendermaßen aus:
If lstListe.SelectedIndex = -1 Then
MessageBox.Show("Bitte etwas auswählen!")
Else
lstListe.Items.Remove _
(lstListe.Items(lstListe.SelectedIndex))
End If
Oder auch wieder:
With lstListe
If .SelectedIndex = -1 Then
MessageBox.Show("Bitte etwas auswählen!")
Else
.Items.Remove(.Items(.SelectedIndex))
End If
End With
Abbildung 2.6
Nun sind sie fast alle weg.
Das sieht enorm schwierig aus. Dieser Befehl muss so umständlich geschrieben werden, weil die Methode Remove ein Objekt verlangt. SelectedIndex liefert aber leider nur eine Zahl. Erst Items(lstListe.SelectedIndex) gibt das korrekte Objekt zurück.
Alle Einträge zu löschen, ist nun nicht mehr schwierig:
lstListe.Items.Clear()
Über eine weitere Schaltfläche soll die Liste erweitert werden. Auch das stellt keine große Schwierigkeit dar:
lstListe.Items.Add("Überraschungsei")
Man kann den neuen Überraschungseiern auch Nummern zuweisen:
lstListe.Items.Add("Überraschungsei " & _
lstListe.Items.Count.ToString)
Abbildung 2.7
Die Liste kann zur Laufzeit gefüllt werden.
|